#ifndef BGV_CIPHERTEXT_H_
#define BGV_CIPHERTEXT_H_

#include "common.h"

/* *
 * @class Ciphertext
 *
 * @brief ：Ciphertext
 * 类用于表示加密后的密文。该类包含了密文的相关信息，包括多项式的系数和加密的相关参数。
 *
 * Ciphertext 类中保存了密文的多项式系数数组（ax 和 bx），
 * 以及加密算法中的其他参数（如维度、槽位数、加密等级和缩放因子）。
 */
class Ciphertext {
public:
    uint64_t *bx;
    uint64_t *ax;
    long N;
    long slots;
    long l;

    Ciphertext();

    Ciphertext(uint64_t *ax, uint64_t *bx, long N, long slots, long l);

    Ciphertext(long N, long slots, long l);

    Ciphertext(const Ciphertext &cipher);

    Ciphertext &operator = (const Ciphertext &o);

    void Print() const;
};
#endif
